package com.wwwarehouse.usercenter.bean.response;

import android.os.Parcel;
import android.os.Parcelable;

import com.alibaba.fastjson.annotation.JSONField;

/**
 * @author : mundane
 * @time : 2017/8/22 14:48
 * @description :
 * @file : ReviewInviteeResponseBean.java
 */

public class ReviewInviteeResponseBean implements Parcelable {

	/**
	 * faceUrl : {"class":"com.wwwarehouse.xdw.usercenter.model.InviteAudit","inviteeInfo":"http://192.168.6.93/avatar/8f52efa5ab704ca1b32b21a6f5b6ecbf.jpeg","type":"faceUrl","unReason":"照片不符"}
	 * inviteDate : {"class":"com.wwwarehouse.xdw.usercenter.model.InviteAudit","inviteeInfo":"2017-08-22 10:42:18","type":"inviteDate","unReason":"注册时间问题"}
	 * mobile : {"class":"com.wwwarehouse.xdw.usercenter.model.InviteAudit","inviteeInfo":"13291817151","type":"mobile","unReason":"手机号不符"}
	 * name : {"class":"com.wwwarehouse.xdw.usercenter.model.InviteAudit","inviteeInfo":"吕同生","type":"name","unReason":"姓名问题"}
	 * personSex : {"class":"com.wwwarehouse.xdw.usercenter.model.InviteAudit","inviteeInfo":"男","type":"personSex","unReason":"性别不符"}
	 * registerCity : {"class":"com.wwwarehouse.xdw.usercenter.model.InviteAudit","inviteeInfo":"未分配或者内网IP","type":"registerCity","unReason":"注册地问题"}
	 * registerDate : {"class":"com.wwwarehouse.xdw.usercenter.model.InviteAudit","inviteeInfo":"2017-08-16 08:57:39","type":"registerDate","unReason":"注册时间问题"}
	 * registerUrl : {"class":"com.wwwarehouse.xdw.usercenter.model.InviteAudit","inviteeInfo":"http://192.168.6.93/avatar/fd92d9019cca4bc098883c0550bf5c93.jpeg","type":"registerUrl","unReason":"照片不符"}
	 */

	public FaceUrl faceUrl;
	public InviteDate inviteDate;
	public Mobile mobile;
	public Name name;
	public PersonSex personSex;
	public RegisterCity registerCity;
	public RegisterDate registerDate;
	public RegisterUrl registerUrl;

	public static class FaceUrl implements Parcelable {
		/**
		 * class : com.wwwarehouse.xdw.usercenter.model.InviteAudit
		 * inviteeInfo : http://192.168.6.93/avatar/8f52efa5ab704ca1b32b21a6f5b6ecbf.jpeg
		 * type : faceUrl
		 * unReason : 照片不符
		 */

		@JSONField(name = "class")
		public String classX;
		public String inviteeInfo;
		public String type;
		public String unReason;
		@JSONField(serialize=false)
		public boolean checked;

		@Override
		public int describeContents() {
			return 0;
		}

		@Override
		public void writeToParcel(Parcel dest, int flags) {
			dest.writeString(this.classX);
			dest.writeString(this.inviteeInfo);
			dest.writeString(this.type);
			dest.writeString(this.unReason);
			dest.writeByte(this.checked ? (byte) 1 : (byte) 0);
		}

		public FaceUrl() {
		}

		protected FaceUrl(Parcel in) {
			this.classX = in.readString();
			this.inviteeInfo = in.readString();
			this.type = in.readString();
			this.unReason = in.readString();
			this.checked = in.readByte() != 0;
		}

		public static final Creator<FaceUrl> CREATOR = new Creator<FaceUrl>() {
			@Override
			public FaceUrl createFromParcel(Parcel source) {
				return new FaceUrl(source);
			}

			@Override
			public FaceUrl[] newArray(int size) {
				return new FaceUrl[size];
			}
		};
	}

	public static class InviteDate implements Parcelable {
		/**
		 * class : com.wwwarehouse.xdw.usercenter.model.InviteAudit
		 * inviteeInfo : 2017-08-22 10:42:18
		 * type : inviteDate
		 * unReason : 注册时间问题
		 */

		@JSONField(name = "class")
		public String classX;
		public String inviteeInfo;
		public String type;
		public String unReason;
		@JSONField(serialize=false)
		public boolean checked;

		@Override
		public int describeContents() {
			return 0;
		}

		@Override
		public void writeToParcel(Parcel dest, int flags) {
			dest.writeString(this.classX);
			dest.writeString(this.inviteeInfo);
			dest.writeString(this.type);
			dest.writeString(this.unReason);
			dest.writeByte(this.checked ? (byte) 1 : (byte) 0);
		}

		public InviteDate() {
		}

		protected InviteDate(Parcel in) {
			this.classX = in.readString();
			this.inviteeInfo = in.readString();
			this.type = in.readString();
			this.unReason = in.readString();
			this.checked = in.readByte() != 0;
		}

		public static final Creator<InviteDate> CREATOR = new Creator<InviteDate>() {
			@Override
			public InviteDate createFromParcel(Parcel source) {
				return new InviteDate(source);
			}

			@Override
			public InviteDate[] newArray(int size) {
				return new InviteDate[size];
			}
		};
	}

	public static class Mobile implements Parcelable {
		/**
		 * class : com.wwwarehouse.xdw.usercenter.model.InviteAudit
		 * inviteeInfo : 13291817151
		 * type : mobile
		 * unReason : 手机号不符
		 */

		@JSONField(name = "class")
		public String classX;
		public String inviteeInfo;
		public String type;
		public String unReason;
		@JSONField(serialize=false)
		public boolean checked;

		@Override
		public int describeContents() {
			return 0;
		}

		@Override
		public void writeToParcel(Parcel dest, int flags) {
			dest.writeString(this.classX);
			dest.writeString(this.inviteeInfo);
			dest.writeString(this.type);
			dest.writeString(this.unReason);
			dest.writeByte(this.checked ? (byte) 1 : (byte) 0);
		}

		public Mobile() {
		}

		protected Mobile(Parcel in) {
			this.classX = in.readString();
			this.inviteeInfo = in.readString();
			this.type = in.readString();
			this.unReason = in.readString();
			this.checked = in.readByte() != 0;
		}

		public static final Creator<Mobile> CREATOR = new Creator<Mobile>() {
			@Override
			public Mobile createFromParcel(Parcel source) {
				return new Mobile(source);
			}

			@Override
			public Mobile[] newArray(int size) {
				return new Mobile[size];
			}
		};
	}

	public static class Name implements Parcelable {
		/**
		 * class : com.wwwarehouse.xdw.usercenter.model.InviteAudit
		 * inviteeInfo : 吕同生
		 * type : name
		 * unReason : 姓名问题
		 */

		@JSONField(name = "class")
		public String classX;
		public String inviteeInfo;
		public String type;
		public String unReason;
		@JSONField(serialize=false)
		public boolean checked;

		@Override
		public int describeContents() {
			return 0;
		}

		@Override
		public void writeToParcel(Parcel dest, int flags) {
			dest.writeString(this.classX);
			dest.writeString(this.inviteeInfo);
			dest.writeString(this.type);
			dest.writeString(this.unReason);
			dest.writeByte(this.checked ? (byte) 1 : (byte) 0);
		}

		public Name() {
		}

		protected Name(Parcel in) {
			this.classX = in.readString();
			this.inviteeInfo = in.readString();
			this.type = in.readString();
			this.unReason = in.readString();
			this.checked = in.readByte() != 0;
		}

		public static final Creator<Name> CREATOR = new Creator<Name>() {
			@Override
			public Name createFromParcel(Parcel source) {
				return new Name(source);
			}

			@Override
			public Name[] newArray(int size) {
				return new Name[size];
			}
		};
	}

	public static class PersonSex implements Parcelable {
		/**
		 * class : com.wwwarehouse.xdw.usercenter.model.InviteAudit
		 * inviteeInfo : 男
		 * type : personSex
		 * unReason : 性别不符
		 */

		@JSONField(name = "class")
		public String classX;
		public String inviteeInfo;
		public String type;
		public String unReason;
		@JSONField(serialize=false)
		public boolean checked;

		@Override
		public int describeContents() {
			return 0;
		}

		@Override
		public void writeToParcel(Parcel dest, int flags) {
			dest.writeString(this.classX);
			dest.writeString(this.inviteeInfo);
			dest.writeString(this.type);
			dest.writeString(this.unReason);
			dest.writeByte(this.checked ? (byte) 1 : (byte) 0);
		}

		public PersonSex() {
		}

		protected PersonSex(Parcel in) {
			this.classX = in.readString();
			this.inviteeInfo = in.readString();
			this.type = in.readString();
			this.unReason = in.readString();
			this.checked = in.readByte() != 0;
		}

		public static final Creator<PersonSex> CREATOR = new Creator<PersonSex>() {
			@Override
			public PersonSex createFromParcel(Parcel source) {
				return new PersonSex(source);
			}

			@Override
			public PersonSex[] newArray(int size) {
				return new PersonSex[size];
			}
		};
	}

	public static class RegisterCity implements Parcelable {
		/**
		 * class : com.wwwarehouse.xdw.usercenter.model.InviteAudit
		 * inviteeInfo : 未分配或者内网IP
		 * type : registerCity
		 * unReason : 注册地问题
		 */

		@JSONField(name = "class")
		public String classX;
		public String inviteeInfo;
		public String type;
		public String unReason;
		@JSONField(serialize=false)
		public boolean checked;

		@Override
		public int describeContents() {
			return 0;
		}

		@Override
		public void writeToParcel(Parcel dest, int flags) {
			dest.writeString(this.classX);
			dest.writeString(this.inviteeInfo);
			dest.writeString(this.type);
			dest.writeString(this.unReason);
			dest.writeByte(this.checked ? (byte) 1 : (byte) 0);
		}

		public RegisterCity() {
		}

		protected RegisterCity(Parcel in) {
			this.classX = in.readString();
			this.inviteeInfo = in.readString();
			this.type = in.readString();
			this.unReason = in.readString();
			this.checked = in.readByte() != 0;
		}

		public static final Creator<RegisterCity> CREATOR = new Creator<RegisterCity>() {
			@Override
			public RegisterCity createFromParcel(Parcel source) {
				return new RegisterCity(source);
			}

			@Override
			public RegisterCity[] newArray(int size) {
				return new RegisterCity[size];
			}
		};
	}

	public static class RegisterDate implements Parcelable {
		/**
		 * class : com.wwwarehouse.xdw.usercenter.model.InviteAudit
		 * inviteeInfo : 2017-08-16 08:57:39
		 * type : registerDate
		 * unReason : 注册时间问题
		 */

		@JSONField(name = "class")
		public String classX;
		public String inviteeInfo;
		public String type;
		public String unReason;
		@JSONField(serialize=false)
		public boolean checked;

		@Override
		public int describeContents() {
			return 0;
		}

		@Override
		public void writeToParcel(Parcel dest, int flags) {
			dest.writeString(this.classX);
			dest.writeString(this.inviteeInfo);
			dest.writeString(this.type);
			dest.writeString(this.unReason);
			dest.writeByte(this.checked ? (byte) 1 : (byte) 0);
		}

		public RegisterDate() {
		}

		protected RegisterDate(Parcel in) {
			this.classX = in.readString();
			this.inviteeInfo = in.readString();
			this.type = in.readString();
			this.unReason = in.readString();
			this.checked = in.readByte() != 0;
		}

		public static final Creator<RegisterDate> CREATOR = new Creator<RegisterDate>() {
			@Override
			public RegisterDate createFromParcel(Parcel source) {
				return new RegisterDate(source);
			}

			@Override
			public RegisterDate[] newArray(int size) {
				return new RegisterDate[size];
			}
		};
	}

	public static class RegisterUrl implements Parcelable {
		/**
		 * class : com.wwwarehouse.xdw.usercenter.model.InviteAudit
		 * inviteeInfo : http://192.168.6.93/avatar/fd92d9019cca4bc098883c0550bf5c93.jpeg
		 * type : registerUrl
		 * unReason : 照片不符
		 */

		@JSONField(name = "class")
		public String classX;
		public String inviteeInfo;
		public String type;
		public String unReason;
		@JSONField(serialize=false)
		public boolean checked;

		@Override
		public int describeContents() {
			return 0;
		}

		@Override
		public void writeToParcel(Parcel dest, int flags) {
			dest.writeString(this.classX);
			dest.writeString(this.inviteeInfo);
			dest.writeString(this.type);
			dest.writeString(this.unReason);
			dest.writeByte(this.checked ? (byte) 1 : (byte) 0);
		}

		public RegisterUrl() {
		}

		protected RegisterUrl(Parcel in) {
			this.classX = in.readString();
			this.inviteeInfo = in.readString();
			this.type = in.readString();
			this.unReason = in.readString();
			this.checked = in.readByte() != 0;
		}

		public static final Creator<RegisterUrl> CREATOR = new Creator<RegisterUrl>() {
			@Override
			public RegisterUrl createFromParcel(Parcel source) {
				return new RegisterUrl(source);
			}

			@Override
			public RegisterUrl[] newArray(int size) {
				return new RegisterUrl[size];
			}
		};
	}

	@Override
	public int describeContents() {
		return 0;
	}

	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeParcelable(this.faceUrl, flags);
		dest.writeParcelable(this.inviteDate, flags);
		dest.writeParcelable(this.mobile, flags);
		dest.writeParcelable(this.name, flags);
		dest.writeParcelable(this.personSex, flags);
		dest.writeParcelable(this.registerCity, flags);
		dest.writeParcelable(this.registerDate, flags);
		dest.writeParcelable(this.registerUrl, flags);
	}

	public ReviewInviteeResponseBean() {
	}

	protected ReviewInviteeResponseBean(Parcel in) {
		this.faceUrl = in.readParcelable(FaceUrl.class.getClassLoader());
		this.inviteDate = in.readParcelable(InviteDate.class.getClassLoader());
		this.mobile = in.readParcelable(Mobile.class.getClassLoader());
		this.name = in.readParcelable(Name.class.getClassLoader());
		this.personSex = in.readParcelable(PersonSex.class.getClassLoader());
		this.registerCity = in.readParcelable(RegisterCity.class.getClassLoader());
		this.registerDate = in.readParcelable(RegisterDate.class.getClassLoader());
		this.registerUrl = in.readParcelable(RegisterUrl.class.getClassLoader());
	}

	public static final Creator<ReviewInviteeResponseBean> CREATOR = new Creator<ReviewInviteeResponseBean>() {
		@Override
		public ReviewInviteeResponseBean createFromParcel(Parcel source) {
			return new ReviewInviteeResponseBean(source);
		}

		@Override
		public ReviewInviteeResponseBean[] newArray(int size) {
			return new ReviewInviteeResponseBean[size];
		}
	};
}
